package com.probox.common.entity.service.customer;

import java.util.List;
import com.baomidou.mybatisplus.extension.service.IService;
import com.probox.customer.api.domain.CustomerInfoVo;
import com.probox.common.entity.domain.customer.CustomerGroup;
import com.probox.common.entity.vo.customer.CustomerGroupVo;

/**
 * 客户分群Service接口
 *
 * @author zsy
 * @date 2021-07-15
 */
public interface ICustomerGroupService extends IService<CustomerGroup> {


        /**
         * 查询客户分群
         *
         * @param groupUid 客户分群ID
         * @return 客户分群
         */
        public CustomerGroupVo selectCustomerGroupById(Long groupUid);


        /**
         * 查询客户分群列表
         *
         * @param  客户分群
         * @return 客户分群集合
         */
        public List<CustomerGroup> queryList();


        /**
         * 新增客户分群
         *
         * @param customerGroup 客户分群
         * @return 结果
         */
        public boolean insertCustomerGroup(CustomerGroup customerGroup);

        /**
         * 修改客户分群
         *
         * @param customerGroup 客户分群
         * @return 结果
         */
        public boolean updateCustomerGroup(CustomerGroup customerGroup);

        /**
         * 批量删除客户分群
         *
         * @param groupUids 需要删除的客户分群ID
         * @return 结果
         */
        public boolean deleteCustomerGroupByIds(Long[] groupUids);

        /**
         * 查询全部客户人群信息
         * @param customerGroupvo
         * @return
         */
       public List<CustomerGroupVo> selectGroupInfo(CustomerGroupVo customerGroupvo);

        /**
         * 新增人群分组
         * @param customerGroupVo
         * @return
         */
       public boolean addGroup(CustomerGroupVo customerGroupVo);

        /**
         * 修改人群分组
         * @param customerGroupVo
         * @return
         */
       public boolean editGroup(CustomerGroupVo customerGroupVo);

        /**
         * 查询指定人群客户数
         */
        public List<CustomerInfoVo> getGroupCustomerCount(Long groupId);

        /**
         * 查看指定分群名称及人数
         * @param groupUid
         * @return
         */
        public CustomerGroup getGroupInfoById(Long groupUid);

}
